package com.eastfair.venueservice.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableField;
import com.eastfair.venueservice.enumeration.RepairReportRepairStatusEnum;
import com.eastfair.venueservice.enumeration.RepairReportRepairTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 实体类
 * 报修申请
 * </p>
 *
 * @author dqq
 * @since 2022-11-21
 */
@Data
@ApiModel(value = "RepairReportUpdateDTO", description = "报修申请")
public class RepairReportDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键")
    private Long id;

    /**
     * 是否启用（确认状态）：1是 已确认；0否 未确认
     */
    @ApiModelProperty(value = "是否启用（确认状态）：1是 已确认；0否 未确认")
    private Integer isEnabled;
    /**
     * 是否删除：1是；0否
     */
    @ApiModelProperty(value = "是否删除：1是；0否")
    private Integer isDeleted;
    /**
     * 项目id
     */
    @ApiModelProperty(value = "项目id")
    private Long projectId;
    /**
     * 子系统id
     */
    @ApiModelProperty(value = "子系统id")
    private Long subsystemId;
    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;
    /**
     * 报修单号
     */
    @ApiModelProperty(value = "报修单号")
    @Size(max = 64, message = "报修单号长度不能超过64")
    private String repairReportNumber;
    /**
     * 报修状态 #{HAS_REPORT:待处理;HAS_DISPATCH:已派单;COMPLETE:已完成;CANCEL:已取消}
     */
    @ApiModelProperty(value = "报修状态 #{HAS_REPORT:待处理;HAS_DISPATCH:已派单;COMPLETE:工单已完成;FINISH:已结束;CANCEL:已取消}")
    private RepairReportRepairStatusEnum repairStatus;
    /**
     * 报修类型 #{HOME_REPAIR:主场报修;ONLINE_REPAIR:线上报修；ON_SITE_REPAIR:现场报修}
     */
    @ApiModelProperty(value = "报修类型 #{HOME_REPAIR:主场报修;ONLINE_REPAIR:线上报修；ON_SITE_REPAIR:现场报修}")
    private RepairReportRepairTypeEnum repairType;
    /**
     * 报修数量
     */
    @ApiModelProperty(value = "报修数量")
    private Integer repairNum;
    /**
     * 报修原因
     */
    @ApiModelProperty(value = "报修原因")
    @Size(max = 255, message = "报修原因长度不能超过255")
    private String repairReason;
    /**
     * 检测结果
     */
    @ApiModelProperty(value = "检测结果")
    @Size(max = 64, message = "检测结果长度不能超过64")
    private String checkResult;
    /**
     * 报修意见
     */
    @ApiModelProperty(value = "报修意见")
    @Size(max = 300, message = "报修意见长度不能超过300")
    private String repairOpinion;
    /**
     * 是否需要赔偿 0:否, 1:是
     */
    @ApiModelProperty(value = "是否需要赔偿 0:否, 1:是")
    private Integer isNeedCompensate;
    /**
     * 报修申请时间
     */
    @ApiModelProperty(value = "报修申请时间")
    private LocalDateTime reportTime;
    /**
     * 展会ID
     */
    @ApiModelProperty(value = "展会ID")
    private Long exhibitionManageId;
    /**
     * 展会名称
     */
    @ApiModelProperty(value = "展会名称")
    @Size(max = 64, message = "展会名称长度不能超过64")
    private String exhibitionManageName;
    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    @Size(max = 64, message = "订单编号长度不能超过64")
    private String orderNumber;
    /**
     * 服务预定ID
     */
    @ApiModelProperty(value = "服务预定ID")
    private Long serviceBookingId;
    /**
     * 服务名称
     */
    @ApiModelProperty(value = "服务名称")
    @Size(max = 255, message = "服务名称长度不能超过255")
    private String serviceName;
    /**
     * 服务分类ID
     */
    @ApiModelProperty(value = "服务分类ID")
    private Long serviceCategoryId;
    /**
     * 服务分类名称
     */
    @ApiModelProperty(value = "服务分类名称")
    @Size(max = 255, message = "服务分类名称长度不能超过255")
    private String serviceCategoryName;
    /**
     * 服务规格id
     */
    @ApiModelProperty(value = "服务规格id")
    private Long serviceSpecsId;
    /**
     * 服务规格名称
     */
    @ApiModelProperty(value = "服务规格名称")
    @Size(max = 255, message = "服务规格名称长度不能超过255")
    private String serviceSpecsName;
    /**
     * 服务提供系统
     */
    @ApiModelProperty(value = "服务提供系统")
    @Size(max = 64, message = "服务提供系统长度不能超过64")
    private String serviceProvideSystem;
    /**
     * 企业ID
     */
    @ApiModelProperty(value = "企业ID")
    private Long companyId;
    /**
     * 公司编码
     */
    @ApiModelProperty(value = "公司编码")
    @Size(max = 64, message = "公司编码长度不能超过64")
    private String companyCode;
    /**
     * 公司名称
     */
    @ApiModelProperty(value = "公司名称")
    @Size(max = 200, message = "公司名称长度不能超过200")
    private String companyName;
    /**
     * 公司类型
     */
    @ApiModelProperty(value = "公司类型")
    @Size(max = 64, message = "公司类型长度不能超过64")
    private String companyType;
    /**
     * 联系人
     */
    @ApiModelProperty(value = "联系人")
    @Size(max = 100, message = "联系人长度不能超过100")
    private String contact;
    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    @Size(max = 100, message = "联系方式长度不能超过100")
    private String phone;
    /**
     * 展厅编码
     */
    @ApiModelProperty(value = "展厅编码")
    @Size(max = 64, message = "展厅编码长度不能超过64")
    private String spaceCode;
    /**
     * 展厅号
     */
    @ApiModelProperty(value = "展厅号")
    @Size(max = 100, message = "展厅号长度不能超过100")
    private String spaceName;
    /**
     * 展位号
     */
    @ApiModelProperty(value = "展位号")
    @Size(max = 100, message = "展位号长度不能超过100")
    private String siteName;
    /**
     * 工单状态
     */
    @ApiModelProperty(value = "工单状态")
    @Size(max = 100, message = "工单状态长度不能超过100")
    private String workOrderStatus;
    /**
     * 派单时间
     */
    @ApiModelProperty(value = "派单时间")
    private LocalDateTime dispatchWorkOrderTime;
    /**
     * 报修申请归属系统
     */
    @ApiModelProperty(value = "报修申请归属系统")
    @Size(max = 64, message = "报修申请归属系统长度不能超过64")
    private String belongSystem;
    /**
     * 完结备注
     */
    @ApiModelProperty(value = "完结备注")
    @Size(max = 500, message = "完结备注长度不能超过500")
    private String completeRemark;
    /**
     * 是否预定服务 0否1是
     */
    @ApiModelProperty(value = "是否预定服务 0否1是")
    private Integer isBookService;
    /**
     * 备注信息
     */
    @ApiModelProperty(value = "备注信息")
    @Size(max = 500, message = "备注信息长度不能超过500")
    private String remark;

    /**
     * 报修申请归属系统列表
     */
    @ApiModelProperty(value = "报修申请归属系统列表")
    private List<String> belongSystemList;
    /**
     * 主场ID
     */
    @ApiModelProperty(value = "主场ID")
    private Long homeId;
    /**
     * 展厅编码列表
     */
    @ApiModelProperty(value = "展厅编码列表")
    private List<String> spaceCodeList;
    /**
     * 接收工单部门id
     */
    @ApiModelProperty(value = "接收工单部门id")
    private Long acceptCompanyId;
    /**
     * 接收工单部门名称
     */
    @ApiModelProperty(value = "接收工单部门名称")
    private String acceptCompanyName;
    /**
     * 关键字
     */
    @ApiModelProperty(value = "关键字")
    private String keyword;
}
